---
title: "JavaScript 到 C 编程"
description: "从 JavaScript 开发者视角掌握 C 编程语言。学习内存管理、指针操作、系统编程和底层开发。"
---

# JavaScript → C 编程

从 JavaScript 开发者的视角掌握 C 编程语言。这门综合课程将引导你从 JavaScript 的高级抽象到 C 的强大底层控制，重点关注内存管理、指针操作、系统编程和性能优化。

## 为什么学习 C？

C 是现代计算的基础。理解 C 让你获得：

- **深入系统理解**: 学习计算机在硬件层面的实际工作原理
- **内存控制**: 掌握手动内存管理和指针操作
- **性能优化**: 编写高性能、低开销的代码
- **系统编程**: 构建操作系统、驱动程序和嵌入式应用
- **职业发展**: C 技能在系统编程、嵌入式开发和性能关键应用中备受重视

## 你将学到什么

### 核心概念
- **内存管理**: 从 JavaScript 的垃圾回收到 C 的手动内存控制
- **指针**: 掌握 C 中最强大也最具挑战性的概念
- **系统编程**: 理解如何直接与硬件交互
- **性能优化**: 编写接近机器速度运行的代码

### 实践技能
- **数据结构**: 从零实现数组、链表、树和图
- **算法**: 编写高效的排序、搜索和图算法
- **文件 I/O**: 处理文件操作和数据持久化
- **网络编程**: 构建网络应用和服务器

### 高级主题
- **多线程**: 使用线程进行并发编程
- **系统调用**: 直接与操作系统交互
- **嵌入式编程**: 微控制器和物联网开发
- **性能分析**: 性能分析和优化技术

## 学习路径

### 模块 00: C 语言介绍
理解 C 的设计哲学及其与 JavaScript 的区别

### 模块 01: 语法对比
将 JavaScript 概念映射到 C 语法和结构

### 模块 02: 变量和内存
理解内存布局和变量存储

### 模块 03: 指针基础
掌握 C 编程中最重要的概念

### 模块 04: 数组和字符串
使用数组、字符串和字符操作

### 模块 05: 函数和栈管理
理解函数调用、参数和栈操作

### 模块 06: 结构体和联合体
构建复杂数据类型和内存高效的结构

### 模块 07: 动态内存分配
使用 malloc、free 和相关函数动态管理内存

### 模块 08: 文件操作
读取、写入和操作文件及数据流

### 模块 09: 算法和数据结构
实现基础算法和数据结构

### 模块 10: 系统编程
与操作系统和硬件交互

### 模块 11: 项目实战
构建真实世界的应用和工具

### 模块 12: 常见陷阱
避免内存错误和未定义行为

### 模块 13: 性能优化
编写快速、高效和优化的代码

### 模块 14: 高级主题
探索现代 C 特性和高级技术

## 交互式学习

每个模块包括：

- **实时代码示例**: 直接在浏览器中运行 C 代码
- **内存可视化**: 查看内存如何分配和使用
- **性能对比**: 比较 C 和 JavaScript 实现
- **交互式调试**: 逐步执行代码
- **实时错误检测**: 捕获内存错误和未定义行为

## 前置要求

- 基础 JavaScript 知识
- 理解编程基础概念
- 熟悉命令行工具
- 无需 C 语言经验

## 工具和环境

- **在线编译器**: 直接在浏览器中运行 C 代码
- **内存可视化器**: 查看内存布局和指针关系
- **调试器**: 逐步执行代码
- **性能分析器**: 分析代码性能
- **错误检测器**: 捕获内存泄漏和未定义行为

## 开始你的旅程

从 [模块 00: C 语言介绍](./js2c/module-00-c-introduction) 开始，理解 JavaScript 和 C 的根本差异，学习如何像系统程序员一样思考。

准备好深入底层编程的世界了吗？让我们开始构建你的 C 编程技能！ 